Skip to content

Conversation

@ilumsden
Copy link
Contributor

Follow up to Slack discussions with @michaelmckinsey1.

This PR adds Python bindings to Adiak, similar to those added to Caliper.

Like Caliper, these bindings consist of 2 parts:

  1. A C++-to-Python bridge implemented with pybind11
  2. A small Python library that wraps the bridge code

Also similar to Caliper, these bindings are installed to lib[64]/pythonX.Y/site-packages/pyadiak (where "X.Y" refers to the Python version used during build).

@ilumsden
Copy link
Contributor Author

Pinging @slabasan and @tpatki since this could be useful for PerfFlow Aspect.

@michaelmckinsey1
Copy link
Contributor

michaelmckinsey1 commented Jul 29, 2025

Changes added are tested at this point for single rank, adding integer value from python application. Need to test multi-rank and other types.

Edit: Tested for multi-rank with communicator and different types.

@ilumsden ilumsden marked this pull request as ready for review August 7, 2025 02:39
Copy link
Member

@daboehme daboehme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, nice work! Would be great to get an example, a test case, and documentation before we merge it in.

@daboehme
Copy link
Member

Also, I think it would be good to make MPI an optional dependency for the Python interface as well.

@michaelmckinsey1
Copy link
Contributor

@daboehme Added docs. I was thinking of updating this example https://software.llnl.gov/Caliper/PythonSupport.html#caliper-python-api to add Adiak and then reference that as an example. Thoughts?

@daboehme
Copy link
Member

@daboehme Added docs. I was thinking of updating this example https://software.llnl.gov/Caliper/PythonSupport.html#caliper-python-api to add Adiak and then reference that as an example. Thoughts?

I think it would be good to have a chapter in the Adiak docs for the Python API with a small Caliper-free example specifically for Adiak.

We can eventually add a combined Adiak/Caliper example too that can go into the Caliper documentation or tutorial. That's out of the scope for this PR though.

@michaelmckinsey1
Copy link
Contributor

michaelmckinsey1 commented Oct 7, 2025

Ok added a test, and documentation (+ example). @daboehme Can we try running the workflow again?

@daboehme daboehme merged commit ddeae0d into llnl:master Oct 30, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants